package com.yfp.operation.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yfp.operation.domain.MiniBanner;
import com.yfp.operation.domain.dto.*;
import com.yfp.operation.domain.vo.MiniBannerListVO;
import com.yfp.operation.domain.vo.MiniBannerVO;
import com.yfp.operation.domain.dto.*;

import java.util.List;

/**
 *
 * @description 针对表【mini_banner(小程序banner)】的数据库操作Service
 * @createDate 2024-07-17 16:43:18
 */
public interface MiniBannerService extends IService<MiniBanner> {

    /**
     * 获取小程序banner列表
     *
     * @param
     * @return
     */
    List<MiniBanner> getAllMiniBanners(String name , String cityName);

    /**
     * 获取小程序banner列表
     *
     * @param
     * @return
     */
    List<MiniBannerListVO> getMiniBannersList(String name , String cityName);

    /**
     * 根据id获取小程序banner
     *
     * @param id
     * @return
     */
    MiniBannerVO getMiniBannerById(Long id);

    /**
     * 创建小程序banner
     *
     * @param miniBannerDTO
     */
    void createMiniBanner(MiniBannerDTO miniBannerDTO);

    /**
     * 创建小程序弹窗banner
     *
     * @param miniBanner
     */
    void createMiniBannerPopup(MiniBanner miniBanner);

    /**
     * 创建小程序轮播banner
     *
     * @param miniBanner
     */
    void createMiniBannerCarousel(MiniBanner miniBanner);

    /**
     * 修改小程序banner
     *
     * @param miniBannerDTO
     */
    void updateMiniBanner(MiniBannerDTO miniBannerDTO);

    /**
     * 删除小程序banner
     *
     * @param id
     */
    void deleteMiniBanner(Long id);

    /**
     * 获取活动banner
     *
     * @param marketingId
     * @return
     */
    MiniBanner findLastByMarketingId(Long marketingId);

    /**
     * 检查是否有弹窗banner
     *
     * @return
     */
    boolean checkMiniBanner(String cityName);

    /**
     * 获取活动列表
     *
     * @return
     */
    List<MarketingDTO> getMarketingList(MarketingNoActivityDTO marketingNoActivityDTO);

    /**
     * 排序
     * @param bannerSortDTO
     * @return
     */
    void sort(BannerSortDTO bannerSortDTO);

    void checkMarStatus(Object marById, MiniBannerDTO miniBannerDTO);

    /**
     * 获取小程序弹窗列表
     * @param miniBannersListDTO
     * @return
     */
    List<MiniBanner> getMiniBanner(MiniBannersListDTO miniBannersListDTO);
}
